// $ANTLR 3.3 Nov 30, 2010 12:45:30 C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g 2011-01-09 15:34:45

import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

public class SimpleCalcLexer extends Lexer {
    public static final int EOF=-1;
    public static final int T__21=21;
    public static final int SEMI_COL=4;
    public static final int SENSOR_TAG=5;
    public static final int ACTUATOR_TAG=6;
    public static final int BEHAVIOUR_TAG=7;
    public static final int NAME_TAG=8;
    public static final int OPEN_TAG=9;
    public static final int CLOSE_TAG_with_quote=10;
    public static final int XML_HEADER_TAG1=11;
    public static final int XML_HEADER_TAG2_PART2=12;
    public static final int XML_HEADER_TAG2_PART3=13;
    public static final int XML_HEADER_TAG2_PART4=14;
    public static final int DIAGRAM_TAG=15;
    public static final int END_CLOSING_TAG=16;
    public static final int CLOSE_TAG=17;
    public static final int NAME=18;
    public static final int WHITESPACE=19;
    public static final int DIGIT=20;

    // delegates
    // delegators

    public SimpleCalcLexer() {;} 
    public SimpleCalcLexer(CharStream input) {
        this(input, new RecognizerSharedState());
    }
    public SimpleCalcLexer(CharStream input, RecognizerSharedState state) {
        super(input,state);

    }
    public String getGrammarFileName() { return "C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g"; }

    // $ANTLR start "SEMI_COL"
    public final void mSEMI_COL() throws RecognitionException {
        try {
            int _type = SEMI_COL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:3:10: ( ';' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:3:12: ';'
            {
            match(';'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SEMI_COL"

    // $ANTLR start "SENSOR_TAG"
    public final void mSENSOR_TAG() throws RecognitionException {
        try {
            int _type = SENSOR_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:4:12: ( 'sensors' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:4:14: 'sensors'
            {
            match("sensors"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "SENSOR_TAG"

    // $ANTLR start "ACTUATOR_TAG"
    public final void mACTUATOR_TAG() throws RecognitionException {
        try {
            int _type = ACTUATOR_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:5:14: ( 'actuators' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:5:16: 'actuators'
            {
            match("actuators"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "ACTUATOR_TAG"

    // $ANTLR start "BEHAVIOUR_TAG"
    public final void mBEHAVIOUR_TAG() throws RecognitionException {
        try {
            int _type = BEHAVIOUR_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:6:15: ( 'behaviours' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:6:17: 'behaviours'
            {
            match("behaviours"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "BEHAVIOUR_TAG"

    // $ANTLR start "NAME_TAG"
    public final void mNAME_TAG() throws RecognitionException {
        try {
            int _type = NAME_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:7:10: ( 'Name=\"' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:7:12: 'Name=\"'
            {
            match("Name=\""); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NAME_TAG"

    // $ANTLR start "OPEN_TAG"
    public final void mOPEN_TAG() throws RecognitionException {
        try {
            int _type = OPEN_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:8:10: ( '<' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:8:12: '<'
            {
            match('<'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "OPEN_TAG"

    // $ANTLR start "CLOSE_TAG_with_quote"
    public final void mCLOSE_TAG_with_quote() throws RecognitionException {
        try {
            int _type = CLOSE_TAG_with_quote;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:9:22: ( '\"/>' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:9:24: '\"/>'
            {
            match("\"/>"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CLOSE_TAG_with_quote"

    // $ANTLR start "XML_HEADER_TAG1"
    public final void mXML_HEADER_TAG1() throws RecognitionException {
        try {
            int _type = XML_HEADER_TAG1;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:10:17: ( '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:10:19: '<?xml version=\"1.0\" encoding=\"UTF-8\"?>'
            {
            match("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "XML_HEADER_TAG1"

    // $ANTLR start "XML_HEADER_TAG2_PART2"
    public final void mXML_HEADER_TAG2_PART2() throws RecognitionException {
        try {
            int _type = XML_HEADER_TAG2_PART2;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:11:23: ( ':Diagram xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:11:25: ':Diagram xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:'
            {
            match(":Diagram xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "XML_HEADER_TAG2_PART2"

    // $ANTLR start "XML_HEADER_TAG2_PART3"
    public final void mXML_HEADER_TAG2_PART3() throws RecognitionException {
        try {
            int _type = XML_HEADER_TAG2_PART3;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:12:23: ( '=\"http://' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:12:25: '=\"http://'
            {
            match("=\"http://"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "XML_HEADER_TAG2_PART3"

    // $ANTLR start "XML_HEADER_TAG2_PART4"
    public final void mXML_HEADER_TAG2_PART4() throws RecognitionException {
        try {
            int _type = XML_HEADER_TAG2_PART4;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:13:23: ( '/1.0\">' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:13:25: '/1.0\">'
            {
            match("/1.0\">"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "XML_HEADER_TAG2_PART4"

    // $ANTLR start "DIAGRAM_TAG"
    public final void mDIAGRAM_TAG() throws RecognitionException {
        try {
            int _type = DIAGRAM_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:14:13: ( ':Diagram' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:14:15: ':Diagram'
            {
            match(":Diagram"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "DIAGRAM_TAG"

    // $ANTLR start "END_CLOSING_TAG"
    public final void mEND_CLOSING_TAG() throws RecognitionException {
        try {
            int _type = END_CLOSING_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:15:17: ( '</' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:15:19: '</'
            {
            match("</"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "END_CLOSING_TAG"

    // $ANTLR start "CLOSE_TAG"
    public final void mCLOSE_TAG() throws RecognitionException {
        try {
            int _type = CLOSE_TAG;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:16:11: ( '>' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:16:13: '>'
            {
            match('>'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "CLOSE_TAG"

    // $ANTLR start "T__21"
    public final void mT__21() throws RecognitionException {
        try {
            int _type = T__21;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:17:7: ( ' ' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:17:9: ' '
            {
            match(' '); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "T__21"

    // $ANTLR start "WHITESPACE"
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:94:12: ( ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+ )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:94:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            {
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:94:14: ( '\\t' | ' ' | '\\r' | '\\n' | '\\u000C' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='\t' && LA1_0<='\n')||(LA1_0>='\f' && LA1_0<='\r')||LA1_0==' ') ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||(input.LA(1)>='\f' && input.LA(1)<='\r')||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);

             _channel = HIDDEN; 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "NAME"
    public final void mNAME() throws RecognitionException {
        try {
            int _type = NAME;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:96:6: ( ( 'a' .. 'z' | 'A' .. 'Z' | DIGIT )+ )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:96:8: ( 'a' .. 'z' | 'A' .. 'Z' | DIGIT )+
            {
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:96:8: ( 'a' .. 'z' | 'A' .. 'Z' | DIGIT )+
            int cnt2=0;
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( ((LA2_0>='0' && LA2_0<='9')||(LA2_0>='A' && LA2_0<='Z')||(LA2_0>='a' && LA2_0<='z')) ) {
                    alt2=1;
                }


                switch (alt2) {
            	case 1 :
            	    // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:
            	    {
            	    if ( (input.LA(1)>='0' && input.LA(1)<='9')||(input.LA(1)>='A' && input.LA(1)<='Z')||(input.LA(1)>='a' && input.LA(1)<='z') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        recover(mse);
            	        throw mse;}


            	    }
            	    break;

            	default :
            	    if ( cnt2 >= 1 ) break loop2;
                        EarlyExitException eee =
                            new EarlyExitException(2, input);
                        throw eee;
                }
                cnt2++;
            } while (true);


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
    // $ANTLR end "NAME"

    // $ANTLR start "DIGIT"
    public final void mDIGIT() throws RecognitionException {
        try {
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:98:16: ( '0' .. '9' )
            // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:98:18: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end "DIGIT"

    public void mTokens() throws RecognitionException {
        // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:8: ( SEMI_COL | SENSOR_TAG | ACTUATOR_TAG | BEHAVIOUR_TAG | NAME_TAG | OPEN_TAG | CLOSE_TAG_with_quote | XML_HEADER_TAG1 | XML_HEADER_TAG2_PART2 | XML_HEADER_TAG2_PART3 | XML_HEADER_TAG2_PART4 | DIAGRAM_TAG | END_CLOSING_TAG | CLOSE_TAG | T__21 | WHITESPACE | NAME )
        int alt3=17;
        alt3 = dfa3.predict(input);
        switch (alt3) {
            case 1 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:10: SEMI_COL
                {
                mSEMI_COL(); 

                }
                break;
            case 2 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:19: SENSOR_TAG
                {
                mSENSOR_TAG(); 

                }
                break;
            case 3 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:30: ACTUATOR_TAG
                {
                mACTUATOR_TAG(); 

                }
                break;
            case 4 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:43: BEHAVIOUR_TAG
                {
                mBEHAVIOUR_TAG(); 

                }
                break;
            case 5 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:57: NAME_TAG
                {
                mNAME_TAG(); 

                }
                break;
            case 6 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:66: OPEN_TAG
                {
                mOPEN_TAG(); 

                }
                break;
            case 7 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:75: CLOSE_TAG_with_quote
                {
                mCLOSE_TAG_with_quote(); 

                }
                break;
            case 8 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:96: XML_HEADER_TAG1
                {
                mXML_HEADER_TAG1(); 

                }
                break;
            case 9 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:112: XML_HEADER_TAG2_PART2
                {
                mXML_HEADER_TAG2_PART2(); 

                }
                break;
            case 10 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:134: XML_HEADER_TAG2_PART3
                {
                mXML_HEADER_TAG2_PART3(); 

                }
                break;
            case 11 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:156: XML_HEADER_TAG2_PART4
                {
                mXML_HEADER_TAG2_PART4(); 

                }
                break;
            case 12 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:178: DIAGRAM_TAG
                {
                mDIAGRAM_TAG(); 

                }
                break;
            case 13 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:190: END_CLOSING_TAG
                {
                mEND_CLOSING_TAG(); 

                }
                break;
            case 14 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:206: CLOSE_TAG
                {
                mCLOSE_TAG(); 

                }
                break;
            case 15 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:216: T__21
                {
                mT__21(); 

                }
                break;
            case 16 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:222: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 17 :
                // C:\\Users\\b\\Documents\\PRJ\\robotique_projet\\my_antlr_program\\SimpleCalc.g:1:233: NAME
                {
                mNAME(); 

                }
                break;

        }

    }


    protected DFA3 dfa3 = new DFA3(this);
    static final String DFA3_eotS =
        "\2\uffff\4\16\1\25\5\uffff\1\27\2\uffff\4\16\5\uffff\4\16\1\uffff"+
        "\4\16\1\uffff\3\16\2\uffff\3\16\1\uffff\1\57\2\16\2\uffff\2\16\1"+
        "\66\1\67\1\16\3\uffff\1\71\1\uffff";
    static final String DFA3_eofS =
        "\72\uffff";
    static final String DFA3_minS =
        "\1\11\1\uffff\1\145\1\143\1\145\1\141\1\57\1\uffff\1\104\3\uffff"+
        "\1\11\2\uffff\1\156\1\164\1\150\1\155\3\uffff\1\151\1\uffff\1\163"+
        "\1\165\1\141\1\145\1\141\1\157\1\141\1\166\1\75\1\147\1\162\1\164"+
        "\1\151\1\uffff\1\162\1\163\2\157\1\141\1\60\1\162\1\165\1\155\1"+
        "\uffff\1\163\1\162\1\40\1\60\1\163\3\uffff\1\60\1\uffff";
    static final String DFA3_maxS =
        "\1\172\1\uffff\1\145\1\143\1\145\1\141\1\77\1\uffff\1\104\3\uffff"+
        "\1\40\2\uffff\1\156\1\164\1\150\1\155\3\uffff\1\151\1\uffff\1\163"+
        "\1\165\1\141\1\145\1\141\1\157\1\141\1\166\1\75\1\147\1\162\1\164"+
        "\1\151\1\uffff\1\162\1\163\2\157\1\141\1\172\1\162\1\165\1\155\1"+
        "\uffff\1\163\1\162\1\40\1\172\1\163\3\uffff\1\172\1\uffff";
    static final String DFA3_acceptS =
        "\1\uffff\1\1\5\uffff\1\7\1\uffff\1\12\1\13\1\16\1\uffff\1\20\1"+
        "\21\4\uffff\1\10\1\15\1\6\1\uffff\1\17\15\uffff\1\5\11\uffff\1\2"+
        "\5\uffff\1\11\1\14\1\3\1\uffff\1\4";
    static final String DFA3_specialS =
        "\72\uffff}>";
    static final String[] DFA3_transitionS = {
            "\2\15\1\uffff\2\15\22\uffff\1\14\1\uffff\1\7\14\uffff\1\12"+
            "\12\16\1\10\1\1\1\6\1\11\1\13\2\uffff\15\16\1\5\14\16\6\uffff"+
            "\1\3\1\4\20\16\1\2\7\16",
            "",
            "\1\17",
            "\1\20",
            "\1\21",
            "\1\22",
            "\1\24\17\uffff\1\23",
            "",
            "\1\26",
            "",
            "",
            "",
            "\2\15\1\uffff\2\15\22\uffff\1\15",
            "",
            "",
            "\1\30",
            "\1\31",
            "\1\32",
            "\1\33",
            "",
            "",
            "",
            "\1\34",
            "",
            "\1\35",
            "\1\36",
            "\1\37",
            "\1\40",
            "\1\41",
            "\1\42",
            "\1\43",
            "\1\44",
            "\1\45",
            "\1\46",
            "\1\47",
            "\1\50",
            "\1\51",
            "",
            "\1\52",
            "\1\53",
            "\1\54",
            "\1\55",
            "\1\56",
            "\12\16\7\uffff\32\16\6\uffff\32\16",
            "\1\60",
            "\1\61",
            "\1\62",
            "",
            "\1\63",
            "\1\64",
            "\1\65",
            "\12\16\7\uffff\32\16\6\uffff\32\16",
            "\1\70",
            "",
            "",
            "",
            "\12\16\7\uffff\32\16\6\uffff\32\16",
            ""
    };

    static final short[] DFA3_eot = DFA.unpackEncodedString(DFA3_eotS);
    static final short[] DFA3_eof = DFA.unpackEncodedString(DFA3_eofS);
    static final char[] DFA3_min = DFA.unpackEncodedStringToUnsignedChars(DFA3_minS);
    static final char[] DFA3_max = DFA.unpackEncodedStringToUnsignedChars(DFA3_maxS);
    static final short[] DFA3_accept = DFA.unpackEncodedString(DFA3_acceptS);
    static final short[] DFA3_special = DFA.unpackEncodedString(DFA3_specialS);
    static final short[][] DFA3_transition;

    static {
        int numStates = DFA3_transitionS.length;
        DFA3_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA3_transition[i] = DFA.unpackEncodedString(DFA3_transitionS[i]);
        }
    }

    class DFA3 extends DFA {

        public DFA3(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 3;
            this.eot = DFA3_eot;
            this.eof = DFA3_eof;
            this.min = DFA3_min;
            this.max = DFA3_max;
            this.accept = DFA3_accept;
            this.special = DFA3_special;
            this.transition = DFA3_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( SEMI_COL | SENSOR_TAG | ACTUATOR_TAG | BEHAVIOUR_TAG | NAME_TAG | OPEN_TAG | CLOSE_TAG_with_quote | XML_HEADER_TAG1 | XML_HEADER_TAG2_PART2 | XML_HEADER_TAG2_PART3 | XML_HEADER_TAG2_PART4 | DIAGRAM_TAG | END_CLOSING_TAG | CLOSE_TAG | T__21 | WHITESPACE | NAME );";
        }
    }
 

}